package com.job.shuang.HomeWork0711.SingletonPattern;

/**
 * 单例模式：程序运行的时候，获取该类的对象，无论多少次获取的都是一个对象（节省内存）
 *   饿汉式：唯一对象创建的时机较早，类加载的时候就创建在内存了
 *   懒汉式：唯一对象创建的时机稍晚，在外界第一次获取对象时才创建
 *  多线程下最终版懒汉
 *  知识点：设计模式，static，访问修饰符，方法去内存，封装，构造
 */
public class Premier {
    public static int number=1000;
    private String name;
    //2.自己创建一个对象
    // private static Premier premier=new Premier(); //饿汉

    private static Premier premier;//懒汉
    //3.暴露对象，设置一个公共访问的方法（只读）
    public static Premier GetInstance(){
        if (premier==null){
            premier=new Premier();
        }
        return premier;
    }

    //1.私有化构造方法，不让外界构造对象
    public Premier(){

    }
    //1.私有化构造方法
    public Premier(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}